package com.ftg.learn.back.pattern.singleton;

/**
 * 单例设计 - 懒汉模式
 * @author kangjx
 * @createTime 2022/9/1
 */
public class LearnSingleton1 {


    private static int index = 0;

    private static LearnSingleton1 instance = null;

    /**
     * 私有化构造方法以后，我们不能放其它调用了
     * 堆 里面开廦三个地址
     */
    private LearnSingleton1(){
        System.out.println("我实例化了" + ++index + "||" + this.hashCode());
    }

    /**
     * 一共公共，不能是实例方法
     * 只能是类方法 .
     * 其次： 关闭了构造方法 ,开放一个公共的方法 用来完成构造方法 调用
     *
     */
    public static LearnSingleton1 getSingletonInstance(){
        //虽然我们把创建逻辑封装起来了  new
//        return new LearnSingleton();
        if(null == instance){
            instance = new LearnSingleton1();
        }
        return instance;
    }

}
